You are sneaky!
We don’t talk about Quarto
We don’t talk about Quarto
We don’t talk about Quarto
Others had more questions…
Quarto®?Quarto®?Quarto® is an open-source scientific and technical publishing system built on Pandoc
Pandoc is a “swiss army knife” for converting simple documents into other formats
Quarto extends Pandoc with heavy use of pre-processing with Lua filters
How do I make a cocktail?
.qmd?A Quarto document i.e. a
.qmdis a plain text file, like a.rmd, that can be rendered to many different formats
Quarto is a command line interface (CLI) that renders plain text formats (
.qmd,.rmd,.md) OR mixed formats (.ipynb/Jupyter notebook) into PDF/Word/HTML reports, books, websites, presentations and more!
Quarto is the next-generation of RMarkdown.
For everyone.
One install, batteries included
| Feature | R Markdown | Quarto |
|---|---|---|
| Basic Formats | ||
| Beamer | ||
| PowerPoint | ||
| HTML Slides | ||
| Advanced Layout |
| Feature | R Markdown | Quarto |
|---|---|---|
| Cross References | ||
| Websites & Blogs | ||
| Books | ||
| Interactivity | Shiny Documents | Quarto Interactive Documents |
| Paged HTML | pagedown | Summer 2022 |
| Journal Articles | rticles | Summer 2022 |
| Dashboards | flexdashboard | Fall 2022 |
```{r penguin-sum}
#| eval: false
library(dplyr, warn.conflicts=FALSE)
penguin_sum <- palmerpenguins::penguins |>
group_by(species, sex) |>
summarize(
n = n(),
across(
c(body_mass_g, bill_length_mm, flipper_length_mm),
list(
mean = ~ mean(.x, na.rm = TRUE),
sd = ~ sd(.x, na.rm = TRUE)
)
),
)
penguin_sum
```# A tibble: 8 × 9
# Groups: species [3]
species sex n body_mass_g_mean body_mass_g_sd bill_length_mm_mean
<fct> <fct> <int> <dbl> <dbl> <dbl>
1 Adelie female 73 3369. 269. 37.3
2 Adelie male 73 4043. 347. 40.4
3 Adelie <NA> 6 3540 477. 37.8
4 Chinstrap female 34 3527. 285. 46.6
5 Chinstrap male 34 3939. 362. 51.1
6 Gentoo female 58 4680. 282. 45.6
7 Gentoo male 61 5485. 313. 49.5
8 Gentoo <NA> 5 4588. 338. 45.6
# … with 3 more variables: bill_length_mm_sd <dbl>,
# flipper_length_mm_mean <dbl>, flipper_length_mm_sd <dbl>
::: {layout-nrow=2}




:::{htmlwidgets} and {shiny} in R or Jupyter Widgets for Python.Quarto also includes native support for Observable JS, a set of enhancements to vanilla JavaScript created by Mike Bostock (also the author of D3)
viewof bill_length_min = Inputs.range(
[32, 50],
{value: 35, step: 1, label: "Bill length (min):"}
)
viewof islands = Inputs.checkbox(
["Torgersen", "Biscoe", "Dream"],
{ value: ["Torgersen", "Biscoe"],
label: "Islands:"
}
)We learned from 10 years of literate programming with knitr + rmarkdown - Quarto is the continuation and unification of the best parts of RMarkdown via knitr.
RMarkdown and knitr are not going away, we’re still supporting it!
I feel as if R Markdown’s birth certificate had a letter “R” stamped on it, and Jupyter had a “Python” stamp - Yihui Xie (author of knitr) 1
The main technical difference between Quarto and R Markdown is that Quarto makes heavy use of Pandoc’s Lua filters. - Yihui Xie 2
We are meeting Julia/Python users in their native language
Replaced mispelling of “tookis” with “toolkit”
Photo by zero take
Comfort of your own workspace
.Rmd or .ipynb?RMarkdown (and knitr) is not going away!
For some of you - nothing changes! Keep using RMarkdown and Jupyter.
However, most existing .rmd or .ipynb can be rendered as-is via Quarto or with some editing. Quarto comes out of the box with better accessibility, better defaults, more options, and a more consistent syntax.
.Rmd or .ipynb?In fact, Quarto can help convert back and forth between .qmd and .ipynb:
quarto convert --help
Usage: quarto convert <input>
Description:
Convert documents to alternate representations.
Convert notebook to markdown: quarto convert mydocument.ipynb
Convert markdown to notebook: quarto convert mydocument.qmd
Convert notebook to markdown, writing to file: quarto convert mydocument.ipynb --output mydoc.qmdquarto publish --help
Usage: quarto publish [provider] [path]
Version: 1.0.0
Description:
Publish a document or project. Available providers include:
- Quarto Pub (quarto-pub)
- GitHub Pages (gh-pages)
- RStudio Connect (connect)
- Netlify (netlify)
Accounts are configured interactively during publishing.
Manage/remove accounts with: quarto publish accounts Development of Quarto is sponsored by RStudio, PBC. The same core team works on both Quarto and R Markdown:
Carlos Scheidegger (@cscheid)
Charles Teague (@dragonstyle)
Christophe Dervieux (@cderv)
J.J. Allaire (@jjallaire)
Yihui Xie (@yihui)
Here is the full contributors list. Quarto is open source and we welcome contributions in our github repository as well! https://github.com/quarto-dev/quarto-cli.
Follow @quarto_pub or me @thomas_mock on Twitter to stay up to date!